package com.qqtech.qquan.hi.enums;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public enum HiRuleClassifyDictEnum {
	/**
	 * 注册
	 */
	REGISTER(1, "注册"),
	/**
	 * 上传用户头像
	 */
	UPLOAD_USER_LOGO(2, "上传用户头像"),
	/**
	 * 修改昵称
	 */
	UPDATE_NAME(3, "修改昵称"),
	/**
	 * 加入社区
	 */
	JOIN_COMMUNITY(4, "加入社区"),
	/**
	 * 签到
	 */
	SIGN(5, "签到"),
	/**
	 * 加入圈子
	 */
	JOIN_CIRCLE(6, "加入圈子"),
	/**
	 * 发布邻里动态
	 */
	NEIGHBOURHOOD_DYNAMIC(7, "发布邻里动态"),
	/**
	 * 发布圈子动态
	 */
	CIRCLE_DYNAMIC(8, "发布圈子动态"),
	/**
	 * 参与圈子活动
	 */
	CIRCLE_ACTIVITY(9, "参与圈子活动"),
	/**
	 * 参与圈子投票
	 */
	CIRCLE_VOTE(10, "参与圈子投票"),
	/**
	 * 点赞他人社区动态
	 */
	COMMUNITY_DYNAMIC_PRAISE(12, "点赞他人邻里动态"),
	/**
	 * 添加好友
	 */
	ADD_FRIEND(13, "添加好友"),
	/**
	 * 收藏店铺
	 */
	COLLECT_SHOP(14, "收藏店铺"),
	/**
	 * 平台下单成功(支付完成)
	 */
	ORDER_SUCCESS(15, "平台下单成功"),
	/**
	 * 评价订单
	 */
	EVALUATE_ORDER(16, "评价订单"),
	/**
	 * 点赞他人圈子动态
	 */
	CIRCLE_DYNAMIC_PRAISE(17, "点赞他人圈子动态"),
	/**
	 * 评论他人圈子动态
	 */
	CIRCLE_DYNAMIC_COMMENT(18, "评论他人圈子动态"),
	/**
	 * 评论他人邻里动态
	 */
	COMMUNITY_DYNAMIC_COMMENT(19, "评论他人邻里动态"),
    /**
     * 加入购物车
     */
	ADD_CART(20, "加入购物车"),
	/**
     * 完成所有新手任务
     */
	COMPLETE_NEW_TASK(21, "完成新手任务"),
	/**
	 * 订单交易完成(订单签收)
	 */
	ORDER_SIGN(22, "订单交易完成【商城】"),
	
	/**
	 * 订单交易完成(订单签收-便利店)
	 */
	ORDER_SIGN4QQSTORE(23, "订单交易完成【便利店】");

	int code;
	String desc;

	private HiRuleClassifyDictEnum(int code, String desc) {
		this.code = code;
		this.desc = desc;
	}

	public int getCode() {
		return code;
	}

	public void setCode(int code) {
		this.code = code;
	}

	public String getDesc() {
		return desc;
	}

	public void setDesc(String desc) {
		this.desc = desc;
	}

	public static String getDesc(Integer code) {
		HiRuleClassifyDictEnum statusEnum = getInstance(code);
		if (statusEnum != null) {
			return statusEnum.getDesc();
		}
		return "";
	}

	public static HiRuleClassifyDictEnum getInstance(Integer code) {
		if (code != null) {
			for (HiRuleClassifyDictEnum statusEnum : HiRuleClassifyDictEnum.values()) {
				if (code.equals(statusEnum.getCode())) {
					return statusEnum;
				}
			}
		}
		return null;
	}

	public static List<Map<String, Object>> getList() {
		HiRuleClassifyDictEnum[] arrEnum = HiRuleClassifyDictEnum.values();
		List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(arrEnum.length);
		for (HiRuleClassifyDictEnum e : arrEnum) {
			Map<String, Object> map = new HashMap<String, Object>();
			map.put("name", e.name());
			map.put("code", e.code);
			map.put("desc", e.desc);
			list.add(map);
		}
		return list;
	}
}
